# 导入celery配置的应用实例
from celery_tasks.celery_main import app
# 导入日志模块
import logging

# 获取当前模块的日志记录器
logger = logging.getLogger(__name__)


@app.task(name='send_sms_task')
def send_sms_task(mobile, sms_code):
    """
    发送短信验证码异步任务
    :param mobile: 手机号
    :param sms_code: 短信验证码
    :return:
    """
    try:
        # 这里可以集成第三方短信服务（如阿里云、腾讯云等）
        # 示例：调用阿里云短信服务
        # from aliyunsdkcore.client import AcsClient
        # from aliyunsdkcore.request import CommonRequest

        # 模拟发送短信
        logger.info(f"开始发送短信验证码: 手机号={mobile}, 验证码={sms_code}")

        # 模拟发送过程（实际项目中替换为真实的短信接口调用）
        print(f"发送短信验证码 {sms_code} 到手机号 {mobile}")

        # 记录发送成功日志
        logger.info(f"短信验证码发送成功: 手机号={mobile}")

    except Exception as e:
        # 记录发送失败日志
        logger.error(f'短信发送异常[mobile:{mobile}, error:{e}]')
        raise e  # 重新抛出异常，以便Celery可以重试


@app.task(name='send_order_sms_task')
def send_order_sms_task(mobile, order_info):
    """
    发送订单相关短信异步任务
    :param mobile: 手机号
    :param order_info: 订单信息
    :return:
    """
    try:
        # 模拟发送订单通知短信
        logger.info(f"开始发送订单通知短信: 手机号={mobile}, 订单信息={order_info}")

        # 模拟发送过程
        print(f"发送订单通知短信到手机号 {mobile}，内容：{order_info}")

        # 记录发送成功日志
        logger.info(f"订单通知短信发送成功: 手机号={mobile}")

    except Exception as e:
        # 记录发送失败日志
        logger.error(f'订单短信发送异常[mobile:{mobile}, error:{e}]')
        raise e
